{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from turbinedataset import TurbineDataset\n",
    "from model import Model\n",
    "from torch.nn import MSELoss\n",
    "from torch.optim import Adam\n",
    "from trainer import Trainer\n",
    "from torch.utils.data import DataLoader\n",
    "from decomposition import Decomposition"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "turbine_id = 1\n",
    "device = \"cuda\"\n",
    "target = \"speed\"\n",
    "trainrate = 0.8\n",
    "testrate = 0.1\n",
    "lr = 0.001\n",
    "epoch = 200\n",
    "seq = 24\n",
    "features = 8\n",
    "target_id = 2\n",
    "batch_size = 128"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_df = pd.read_csv(f\"/home/duxiangyu/data/turbine_data/data_with_turbine_features/processed_data/WuXingLing_WuXingLing{turbine_id:03d}_20231105000000_20231107000000_SCADA温数据.csv\")\n",
    "target = data_df[target]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "decomp = Decomposition(seq)\n",
    "data_base, data_trend, data_season = decomp.decomp(data_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "datalen = len(target)\n",
    "trainset = TurbineDataset(data_base[:int(datalen * 0.8)], data_trend[:int(datalen * 0.8)], data_season[:int(datalen * 0.8)], target[:int(datalen * 0.8)], seq, device)\n",
    "testset = TurbineDataset(data_base[-int(datalen * 0.1):], data_trend[-int(datalen * 0.1):], data_season[-int(datalen * 0.1):], target[-int(datalen * 0.1):], seq, device)\n",
    "valset = TurbineDataset(data_base[len(trainset):-len(testset)], data_trend[len(trainset):-len(testset)], data_season[len(trainset):-len(testset)], target[len(trainset):-len(testset)], seq, device)\n",
    "trainloader = DataLoader(trainset, batch_size=batch_size, shuffle=True)\n",
    "valloader = DataLoader(valset, batch_size=batch_size)\n",
    "testloader = DataLoader(testset, batch_size=batch_size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Model(features=features, seq=seq, target_id=target_id).to(device)\n",
    "optimizer = Adam(model.parameters(), lr)\n",
    "criterion = MSELoss()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "trainer = Trainer(model, criterion, optimizer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training epoch 1...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:32<00:00, 33.37it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.07501823745874894\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 24.37it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03285478175487643\n",
      "val loss decrease from 1.7976931348623157e+308 to 0.03285478175487643\n",
      "training epoch 2...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.64it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0682915413821185\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.43it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.0322789292960592\n",
      "val loss decrease from 0.03285478175487643 to 0.0322789292960592\n",
      "training epoch 3...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.65it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06737167651040686\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.35it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03199895923043026\n",
      "val loss decrease from 0.0322789292960592 to 0.03199895923043026\n",
      "training epoch 4...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.63it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06711413481583198\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.12it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03160906404167797\n",
      "val loss decrease from 0.03199895923043026 to 0.03160906404167797\n",
      "training epoch 5...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.53it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0665709294171797\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.33it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03156571146374678\n",
      "val loss decrease from 0.03160906404167797 to 0.03156571146374678\n",
      "training epoch 6...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.54it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06602467466490688\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 24.99it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.031135685058817378\n",
      "val loss decrease from 0.03156571146374678 to 0.031135685058817378\n",
      "training epoch 7...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.51it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06556131633826429\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.48it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.031087804643902928\n",
      "val loss decrease from 0.031135685058817378 to 0.031087804643902928\n",
      "training epoch 8...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.55it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06511998150014767\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.33it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030967154033372506\n",
      "val loss decrease from 0.031087804643902928 to 0.030967154033372506\n",
      "training epoch 9...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.55it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06498234334091345\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.47it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030928239572163233\n",
      "val loss decrease from 0.030967154033372506 to 0.030928239572163233\n",
      "training epoch 10...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.53it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0646936831926858\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.32it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03075149666470037\n",
      "val loss decrease from 0.030928239572163233 to 0.03075149666470037\n",
      "training epoch 11...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.53it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06443969122030668\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.15it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030586543160846785\n",
      "val loss decrease from 0.03075149666470037 to 0.030586543160846785\n",
      "training epoch 12...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.50it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0642286286516874\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.34it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03042138656704029\n",
      "val loss decrease from 0.030586543160846785 to 0.03042138656704029\n",
      "training epoch 13...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.59it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06410850552773034\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.46it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030488817120546147\n",
      "early stopping 1/5\n",
      "training epoch 14...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.59it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06379188475785431\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.37it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030443512939039945\n",
      "early stopping 2/5\n",
      "training epoch 15...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.55it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0635772198404151\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.48it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030450292337370816\n",
      "early stopping 3/5\n",
      "training epoch 16...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.63it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06329808280009915\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.39it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030296631811378413\n",
      "val loss decrease from 0.03042138656704029 to 0.030296631811378413\n",
      "training epoch 17...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.58it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0630031117617532\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.45it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.030147663187509513\n",
      "val loss decrease from 0.030296631811378413 to 0.030147663187509513\n",
      "training epoch 18...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.66it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06284284582016644\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.41it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.03011190942283172\n",
      "val loss decrease from 0.030147663187509513 to 0.03011190942283172\n",
      "training epoch 19...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.72it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06248486615993359\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.60it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029946093108532402\n",
      "val loss decrease from 0.03011190942283172 to 0.029946093108532402\n",
      "training epoch 20...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.66it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.062046277329877574\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.43it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029884153180961114\n",
      "val loss decrease from 0.029946093108532402 to 0.029884153180961114\n",
      "training epoch 21...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.53it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0616634516597346\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.59it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029797317802577335\n",
      "val loss decrease from 0.029884153180961114 to 0.029797317802577335\n",
      "training epoch 22...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.60it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.06116076320133827\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.43it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029780931895776817\n",
      "val loss decrease from 0.029797317802577335 to 0.029780931895776817\n",
      "training epoch 23...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.62it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.060512123927818955\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.64it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029602926635347745\n",
      "val loss decrease from 0.029780931895776817 to 0.029602926635347745\n",
      "training epoch 24...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.54it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.059822130548181356\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.83it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029532448600922877\n",
      "val loss decrease from 0.029602926635347745 to 0.029532448600922877\n",
      "training epoch 25...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.55it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.05910538034341126\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.40it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.02944726956433014\n",
      "val loss decrease from 0.029532448600922877 to 0.02944726956433014\n",
      "training epoch 26...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.57it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.05828865562669105\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.44it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029349009848802406\n",
      "val loss decrease from 0.02944726956433014 to 0.029349009848802406\n",
      "training epoch 27...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.54it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.05755019588051019\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.23it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029296259221155196\n",
      "val loss decrease from 0.029349009848802406 to 0.029296259221155196\n",
      "training epoch 28...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.68it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.056788556774457294\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.31it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029075431793257046\n",
      "val loss decrease from 0.029296259221155196 to 0.029075431793257046\n",
      "training epoch 29...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.60it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.05571423302818504\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.59it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029090052749619216\n",
      "early stopping 1/5\n",
      "training epoch 30...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.74it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.05495321294810209\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.79it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.029005886613637868\n",
      "val loss decrease from 0.029075431793257046 to 0.029005886613637868\n",
      "training epoch 31...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.60it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.054017723406906484\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.43it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.028647928651052472\n",
      "val loss decrease from 0.029005886613637868 to 0.028647928651052472\n",
      "training epoch 32...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.74it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.053227886831801796\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.24it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.028747550759683636\n",
      "early stopping 1/5\n",
      "training epoch 33...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.66it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0524888062418473\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.30it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.028554267715662718\n",
      "val loss decrease from 0.028647928651052472 to 0.028554267715662718\n",
      "training epoch 34...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.55it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.05166881958160687\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.47it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.0285565757418654\n",
      "early stopping 1/5\n",
      "training epoch 35...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:44<00:00, 24.51it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.050742517706627646\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.41it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.028083493941641578\n",
      "val loss decrease from 0.028554267715662718 to 0.028083493941641578\n",
      "training epoch 36...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.61it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0499282360335605\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.40it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.028138140334597078\n",
      "early stopping 1/5\n",
      "training epoch 37...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.61it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.049265604811134164\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.82it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.028155056965153885\n",
      "early stopping 2/5\n",
      "training epoch 38...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.72it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04850264786294213\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.49it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.027708821365034535\n",
      "val loss decrease from 0.028083493941641578 to 0.027708821365034535\n",
      "training epoch 39...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.60it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04781301814062452\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.47it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.02750064086456619\n",
      "val loss decrease from 0.027708821365034535 to 0.02750064086456619\n",
      "training epoch 40...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.61it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04717370869626326\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.48it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.027587163453812107\n",
      "early stopping 1/5\n",
      "training epoch 41...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.69it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04655817937174881\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.18it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.027318026480155393\n",
      "val loss decrease from 0.02750064086456619 to 0.027318026480155393\n",
      "training epoch 42...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.78it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04582852730699987\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.12it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.027341731377151412\n",
      "early stopping 1/5\n",
      "training epoch 43...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.73it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.045261825471081665\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.16it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.026984124220154414\n",
      "val loss decrease from 0.027318026480155393 to 0.026984124220154414\n",
      "training epoch 44...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.61it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04451763214784916\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.14it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.026708356974482098\n",
      "val loss decrease from 0.026984124220154414 to 0.026708356974482098\n",
      "training epoch 45...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.59it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04419333308038336\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.41it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.026731164025156486\n",
      "early stopping 1/5\n",
      "training epoch 46...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.71it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.0433044564185871\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.67it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.026705778738045517\n",
      "val loss decrease from 0.026708356974482098 to 0.026705778738045517\n",
      "training epoch 47...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.63it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.042919555458205715\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.68it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.02636917998247287\n",
      "val loss decrease from 0.026705778738045517 to 0.02636917998247287\n",
      "training epoch 48...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.56it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.042399768707238966\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.56it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.02652388084029286\n",
      "early stopping 1/5\n",
      "training epoch 49...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.57it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.04179106923165145\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.42it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.026586322610348684\n",
      "early stopping 2/5\n",
      "training epoch 50...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 1080/1080 [00:43<00:00, 24.56it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train loss is 0.041260896999112985\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 136/136 [00:05<00:00, 25.45it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val loss is 0.026383344515445915\n",
      "early stopping 3/5\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 135/135 [00:05<00:00, 24.63it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "test loss is 0.03819365385505888\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "trainer.train(trainloader, valloader, testloader, epoch, valepoch=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 135/135 [00:01<00:00, 119.38it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "17256\n",
      "17256\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "y_t, y_p = trainer.predict(testloader)\n",
    "print(len(y_p))\n",
    "print(len(y_t))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "17256\n"
     ]
    },
    {
     "data": {
      "image/png": "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sDCOHTvm9LUCAwONPRrZGW5wBgsWLMDPz4/ly5cTGBho3J6XKbO1a9fmvvvuIz4+nueff574+HgqV65sDIgMOnfuTOfOncnIyGDz5s2899579OrVi+joaJo2bWr1GsHBwTRu3NhmWww3WoNy5coBMGrUKGJiYsweU7NmTQBCQ0PN3vjsuRmGhYXx22+/kZWV5VSwUq5cOerWrcvEiRPNvl65cmVjG7du3epUG7Pr378/b7zxBlu3bmX+/Pn4+PiY1EKZO3cuVapUYeHChSafqT2zqAw/Vzn3zfmzaPjefPrppzRp0sTsuQxBWbly5YiLiyMuLo4jR46wbNky3njjDc6cOcPKlSttv2EhHCCBiigS9Ho9s2bNolq1anz77be5Xl++fDmTJ09mxYoVdOzYkccee4w5c+awb98+440zp4CAAMB8r0d0dDSLFi0iIyPDuN/58+fZuHGjMWETtBt5sWLF8PX1NW67fv26yTCAM/r168cLL7zAb7/9xo8//siwYcNMrpHzfbRs2ZIyZcqwatUq/vjjD5uBirNq1qxJ9erV2blzJ++++67VfVu3bs2yZcs4ffq08Qap1+tZuHChzes89thjJCQkMHPmTKvDPwEBAWa/fx07duR///sf1apVo2zZslbb+N1337Fs2TKT4R97En6z69OnD2+//TZff/01y5Yto23btkRFRRlf1+l0+Pv7mwQpp06dsmvWj2GW2a5du0x+lpctW2ayX/PmzSlTpgy7d+/m5Zdftrvtd9xxBy+//DJr165lw4YNdh8nhN08nCMjRL748ccfFaA++OADs6+fPXtWBQQEqCeeeEIppdSxY8dUpUqVVPny5VVcXJxau3atWrJkiXruuefUnj17lFJa8mFQUJBq3ry5SkpKUtu2bVPHjx9XSin122+/KUB17dpVrVq1Ss2fP1/Vr19fRUVFmSTTrl271rjf6tWrVUJCgmrUqJGqXr26zYRRay5duqSCgoJURESEAtS+fftMXn/nnXdUv3791Ny5c1VycrL64YcfVOvWrZWfn5/666+/rJ47KipKdejQweo+hmTaDz/8MNdrv/zyiwoICFAPP/ywmj9/vlq3bp36/vvv1bvvvqu6du1q3O/PP/9UQUFBqnbt2mrBggVq2bJl6pFHHlGRkZE2P5tbt24Z38/IkSPVihUr1E8//aRGjx6tEhISTI4rX768WrZsmdq2bZvau3evUkqpEydOqKioKHXXXXepL774Qq1du1b99NNP6vPPP1cdOnRQR48eVUppPwM1atRQwcHB6rPPPlOrVq1SgwcPVnfccYfdybQGjz/+uNLpdApQCxYsMHltxowZClAvvPCCWrt2rZo5c6aqVq2a8ecku5zJtJmZmapmzZrqjjvuUPPnz1crVqxQAwcOVFWqVDFJplVKqTlz5igfHx/VvXt3tWjRIrVu3Tq1ePFi9c4776hBgwYppbSfrQYNGqgPP/xQ/fjjjyo5OVl9+OGHKjAwMFcStxCuIIGKKBKeeOIJ5e/vr86cOWNxnx49eqhixYoZZ5kcPXpU9e/fX1WsWFH5+fmpypUrq27dupnMzkhISFB33XWX8vPzU4AaM2aM8bVZs2apWrVqqcDAQFW7dm21cOFCs7N+ZsyYoWrWrKkCAgJU1apV1XvvvaemT5+ep0BFKaV69eqlANW8efNcry1fvlw99thjKjw8XPn7+6vy5cur9u3bq/Xr19s8b14DFaWU2rlzp+rWrZsqX7688vPzUxUrVlRt2rQxzsYy2LBhg2rSpIkKCAhQFStWVCNGjFDTpk2z67O5fv26Gj16tKpevbry9/dXoaGhqk2bNmrjxo3GfVJSUlTz5s1V8eLFFWByjrNnz6pXX31VValSRfn5+amQkBDVqFEj9dZbb6krV64Y9zt27Jjq0qWLKlmypCpVqpTq0qWL2rhxo8OBytKlSxWgQkJC1I0bN3K9/v7776vo6GgVEBCgatWqpb755hs1ZswYm4GKUkr9888/6uGHH1alS5dWYWFh6pVXXlE//fRTrkBFKaXWrVunOnTooEJCQpSfn58KDw9XHTp0UIsWLVJKKXXjxg01aNAgVbduXVW6dGkVFBSkatasqcaMGaOuXr1q9/sVwl46pZyoKiWEEEIIkQ9k1o8QQgghvJYEKkIIIYTwWhKoCCGEEMJrSaAihBBCCK8lgYoQQgghvJYEKkIIIYTwWgW6Mm1WVhYnTpygVKlSuUp1CyGEEMI7KaW4fPmyXWtyFehA5cSJE0RGRnq6GUIIIYRwwtGjR20uAFugA5VSpUoB2hvNvn6KEEIIIbxXeno6kZGRxvu4NQU6UDEM95QuXVoCFSGEEKKAsSdtQ5JphRBCCOG1JFARQgghhNeSQEUIIYQQXqtA56jYS6/Xc+vWLU83QwiX8Pf3tzmdTwghCotCHagopTh16hSXLl3ydFOEcBkfHx+qVKmCv7+/p5sihBBuV6gDFUOQUr58eYoXLy5F4USBZyhyePLkSe644w75mRZCFHqFNlDR6/XGICU0NNTTzRHCZcLCwjhx4gSZmZn4+fl5ujlCCOFWhXag25CTUrx4cQ+3RAjXMgz56PV6D7dECCHcr9AGKgbSNS4KG/mZFkIUJYV26EcIIYQQztPrYf16OHkSKlWCFi3A1zf/21Hoe1SE6+l0On744QdPN8MtWrVqxZAhQ4zPo6OjiYuLy/d2zJw5kzJlyuT7dYUQAiAxEaKjoXVr6NVL+xodrW3PbxKoeLGNGzfi6+vLo48+6vCxnrrBukN0dDQ6nQ6dTkfx4sWpU6cOX3/9db5ce9u2bQwcONCufSW4EEIUBomJ0LUrHDtmuv34cW17fgcrEqjYQa+H5GRISNC+5lcO44wZM3jllVf47bffOHLkSP5c1EuNHz+ekydPsmvXLp544gkGDRrEwoULze578+ZNl103LCxMErKFEEWGXg+DB4NSuV8zbBsyJP/ugyCBik2e6v66evUq3333HS+88AIdO3Zk5syZufZZtmwZjRs3JjAwkHLlyhETEwNowxeHDx9m6NChxp4IgLFjx1K/fn2Tc8TFxREdHW18vm3bNh566CHKlStHcHAwLVu2ZMeOHXa3++uvvyY8PJysrCyT7Y8//jh9+vQBYOfOnbRu3ZpSpUpRunRpGjVqxO+//271vKVKlaJixYrceeedTJgwgerVqxuHn1q1asXLL7/MsGHDKFeuHA899BAAu3fvpn379pQsWZIKFSrw9NNPc+7cOeM5r169yjPPPEPJkiWpVKkSkydPznXdnD1Tly5dYuDAgVSoUIHAwEDq1KnD8uXLSU5Opl+/fqSlpRk/87FjxwJa4DRy5EjCw8MpUaIE999/P8nJySbXmTlzJnfccQfFixfnySef5Pz58/Z83EII4VLr1+fuSclOKTh6VNsvv0igYoUnu78WLlxIzZo1qVmzJr179yY+Ph6VLcT96aefiImJoUOHDvzxxx+sXbuWxo0b/9fuRCIiIoy9ECdPnrT7upcvX6ZPnz6sX7+ezZs3U716ddq3b8/ly5ftOv6pp57i3LlzJCUlGbddvHiRVatWERsbC0BsbCwRERFs27aN7du388YbbzhcDyQwMNBkWYRZs2ZRrFgxNmzYwNdff83Jkydp2bIl9evX5/fff2flypWcPn2abt26GY8ZMWIESUlJfP/996xevZrk5GS2b99u8ZpZWVk89thjbNy4kblz57J7927ef/99fH19adasGXFxcZQuXdr4mQ8fPhyAfv36sWHDBhYsWMCuXbt46qmnePTRR9m/fz8AW7ZsoX///rz44oukpKTQunVrJkyY4NDnIYQQrmDv7cKB20reqQIsLS1NASotLS3Xa9evX1e7d+9W169fd+rcmZlKRUQopcWPuR86nVKRkdp+7tCsWTMVFxenlFLq1q1bqly5curnn382vt60aVMVGxtr8fioqCg1ZcoUk21jxoxR9erVM9k2ZcoUFRUVZfE8mZmZqlSpUurHH380bgPU999/b/GYxx9/XPXv39/4/Ouvv1YVK1ZUmf99WKVKlVIzZ860eLy193Lr1i0VHx+vAPXFF18opZRq2bKlql+/vskx77zzjnr44YdNth09elQBat++fery5cvK399fLViwwPj6+fPnVVBQkBo8eLDZa69atUr5+Pioffv2mW1nfHy8Cg4ONtl24MABpdPp1PHjx022t23bVo0aNUoppVTPnj3Vo48+avJ69+7dc53LIK8/20IIYUlSkuX7XvZHUlLermPt/p2T9KhY4Mnur3379rF161Z69OgBQLFixejevTszZsww7pOSkkLbtm1dfu0zZ84waNAgatSoQXBwMMHBwVy5csWhHJnY2FiWLFlCRkYGAPPmzaNHjx74/jevbdiwYTz77LO0a9eO999/n4MHD9o85+uvv07JkiUJCgripZdeYsSIETz//PPG1w29SQbbt28nKSmJkiVLGh933XUXAAcPHuTgwYPcvHmTpk2bGo8JCQmhZs2aFtuQkpJCREQENWrUsPuz2LFjB0opatSoYdKWdevWGd/3nj17TNoB5HouhBD5oUULiIgAS+WadDqIjNT2yy9SR8UCT3Z/TZ8+nczMTMLDw43blFL4+flx8eJFypYtS1BQkMPn9fHxMRk+AnKtKt23b1/Onj1LXFwcUVFRBAQE0LRpU4cSVDt16kRWVhY//fQT9957L+vXr+fjjz82vj527Fh69erFTz/9xIoVKxgzZgwLFizgySeftHjOESNG0LdvX4oXL06lSpVyFT0rUaKEyfOsrCw6derEBx98kOtc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u+9mzZo1xue+vr4ebE3BdPHiRZo3b07r1q1ZsWIF5cuX5+DBg5QpU8bTTStwtm3bhl6vNz7/66+/eOihh3jqqac82KqC54MPPuCrr75i1qxZ3H333fz+++/069eP4OBgBg8e7OnmFTjPPvssf/31F3PmzKFy5crMnTuXdu3asXv3bsLDwz3dPIskUPGwK1euEBsbyzfffMOECRM83ZwCq1ixYtKLkkcffPABkZGRxMfHG7dFR0d7rkEFWFhYmMnz999/n2rVqtGyZUsPtahg2rRpE507d6ZDhw6A9vOYkJDA77//7uGWFTzXr19nyZIlLF26lAcffBDQeqN/+OEHvvzyS6++/8jQj4e99NJLdOjQgXbt2nm6KQXa/v37qVy5MlWqVKFHjx78+++/nm5SgbNs2TIaN27MU089Rfny5WnQoAHffPONp5tV4N28eZO5c+fSv3//Ar14qic88MADrF27ln/++QeAnTt38ttvv9G+fXsPt6zgyczMRK/XExgYaLI9KCiI3377zUOtso/0qHjQggUL2LFjR4EYI/Rm999/P7Nnz6ZGjRqcPn2aCRMm0KxZM/7++29CQ0M93bwC499//+XLL79k2LBhvPnmm2zdupVXX32VgIAAnnnmGU83r8D64YcfuHTpEn379vV0Uwqc119/nbS0NO666y58fX3R6/VMnDiRnj17erppBU6pUqVo2rQp//d//0etWrWoUKECCQkJbNmyherVq3u6edYp4RFHjhxR5cuXVykpKcZtLVu2VIMHD/ZcowqJK1euqAoVKqjJkyd7uikFip+fn2ratKnJtldeeUU1adLEQy0qHB5++GHVsWNHTzejQEpISFAREREqISFB7dq1S82ePVuFhISomTNnerppBdKBAwfUgw8+qADl6+ur7r33XhUbG6tq1arl6aZZJT0qHrJ9+3bOnDlDo0aNjNv0ej2//vorn332GRkZGZIQ6qQSJUpwzz33sH//fk83pUCpVKkStWvXNtlWq1YtlixZ4qEWFXyHDx9mzZo1JCYmeropBdKIESN444036NGjBwD33HMPhw8f5r333qNPnz4ebl3BU61aNdatW8fVq1dJT0+nUqVKdO/enSpVqni6aVZJoOIhbdu25c8//zTZ1q9fP+666y5ef/11CVLyICMjgz179tCiRQtPN6VAad68Ofv27TPZ9s8//xAV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GzduZM+ePTz//POcOnXK6vnatGnDZ599xo4dO/j9998ZNGgQfn5+xtdjY2MpV64cnTt3Zv369aSmprJu3ToGDx7MsWPHSE1NZdSoUWzatInDhw+zevVq/vnnH8lTEcKFJFARogiYPn067dq1M+kFMOjSpQspKSns2LGDVq1asWjRIpYtW0b9+vVp06aNyayZ8ePHc+jQIapVq2Yc+qhVqxZffPEFn3/+OfXq1WPr1q0mSa2gJb1evHiRBg0a8PTTT/Pqq69Svnx5p97LgAEDuHjxIu3ateOOO+4wbn/nnXdo2LAhjzzyCK1ataJixYo88cQTVs81efJkIiMjefDBB+nVqxfDhw+nePHixteLFy/Or7/+yh133EFMTAy1atWif//+XL9+ndKlS1O8eHH27t1Lly5dqFGjBgMHDuTll1/m+eefd+q9CSFy06mcA7RCCCGEEF5CelSEEEII4bUkUBFCCCGE15JARQghhBBeSwIVIYQQQngtCVSEEEII4bUkUBFCCCGE15JARQghhBBeSwIVIYQQQngtCVSEEEII4bUkUBFCCCGE15JARQghhBBeSwIVIYQQQnit/weHa2lzBzngZQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 假设 predictions 和 actual_values 已经定义\n",
    "# predictions 是模型的预测值，actual_values 是真实值\n",
    "\n",
    "actual_values = y_t\n",
    "predictions = y_p\n",
    "print(len(actual_values))\n",
    "length = 1000\n",
    "actual_values = actual_values[:length]\n",
    "predictions = predictions[:length]\n",
    "\n",
    "# 创建散点图\n",
    "plt.scatter(actual_values, predictions, color='blue', label='Actual vs Predicted')\n",
    "\n",
    "# 添加标签和标题\n",
    "plt.xlabel('Actual Values')\n",
    "plt.ylabel('Predicted Values')\n",
    "plt.title('Actual vs Predicted Values')\n",
    "\n",
    "# 添加对角线，用于比较完美预测的情况\n",
    "plt.plot([min(actual_values), max(actual_values)], [min(actual_values), max(actual_values)], linestyle='--', color='red', linewidth=2, label='Perfect Prediction')\n",
    "\n",
    "# 显示图例\n",
    "plt.legend()\n",
    "\n",
    "# 显示图形\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.03705786074975862\n",
      "0.146667524419231\n"
     ]
    }
   ],
   "source": [
    "mseloss = 0\n",
    "maeloss = 0\n",
    "for t, p in zip(y_t, y_p):\n",
    "    mseloss += (t - p) ** 2\n",
    "    maeloss += abs(t - p)\n",
    "print(mseloss / len(y_t))\n",
    "print(maeloss / len(y_t))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f07281684c0>]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "length = 50\n",
    "x = [i for i in range(length)]\n",
    "plt.plot(x, predictions[:length], color=\"red\")\n",
    "plt.plot(x, actual_values[:length])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "gru",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.19"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
